package com.hetongxue.system.controller;

import com.hetongxue.response.Result;
import com.hetongxue.system.domain.Label;
import com.hetongxue.system.domain.dto.RequestPageDto;
import com.hetongxue.system.service.LabelService;
import io.swagger.annotations.Api;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @Description: 标签控制器
 * @ClassNmae: LabelController
 * @Author: 何同学
 * @DateTime: 2022-05-10 20:03
 **/
@RestController
@RequiredArgsConstructor
@Api("标签模块")
public class LabelController {

    private final LabelService labelService;

    /**
     * 获取所有
     **/
    @GetMapping("/getLabel")
    public Result getLabel() {
        return Result.Success(labelService.getLabel());
    }

    /**
     * 分页获取
     **/
    @GetMapping("/getLabelByPage")
    public Result getLabelByPage(RequestPageDto requestVo) {
        return Result.Success(labelService.selectPageLabel(requestVo));
    }

    /**
     * 修改标签
     **/
    @PutMapping("/updateLabel")
    public Result updateLabel(@RequestBody Label label) {
        return labelService.updateLabel(label) > 0 ? Result.Success().setMessage("修改成功") : Result.Error().setMessage("修改失败");
    }

    /**
     * 新增标签
     **/
    @PostMapping("/addLabel")
    public Result addLabel(@RequestBody Label label) {
        return labelService.insertLabel(label) > 0 ? Result.Success().setMessage("添加成功") : Result.Error().setMessage("添加失败");
    }

    /**
     * 删除标签
     **/
    @DeleteMapping("/deleteLabel/{id}")
    public Result deleteLabel(@PathVariable("id") Long id) {
        return labelService.deleteLabelById(id) > 0 ? Result.Success().setMessage("删除成功") : Result.Error().setMessage("删除失败");
    }

    /**
     * 批量删除标签
     **/
    @DeleteMapping("/deleteBatchLabel")
    public Result deleteBatchLabel(@RequestBody List<Long> labelIds) {
        return labelService.deleteBatchLabelByIds(labelIds) > 0 ? Result.Success().setMessage("删除成功") : Result.Error().setMessage("删除失败");
    }


}
